#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include <QTcpServer>
#include <QTcpSocket>
#include <QTextStream>
#include <QList>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QSqlRecord>
#include <QDateTime>
#include <QHostInfo>
#include <QHostAddress>

namespace Ui {
class Dialog;
}

class Dialog : public QDialog
{
    Q_OBJECT

public:
    explicit Dialog(QWidget *parent = 0);
    ~Dialog();

private:
    Ui::Dialog *ui;
    QTcpServer *server;
    QList<QTcpSocket*> clients;  // 用于保存所有客户端的连接
    QSqlDatabase db;                     // 用于数据库操作
    // 数据库初始化和操作
    bool setupDatabase();
    void insertMessageToDatabase(const QString &ip, quint16 port, const QString &message,const QString &timeStamp);   // 插入聊天记录
    QString queryChatHistory(); // 查询聊天记录

private slots:
    void newConnectionSlot();
    void disConnectedSlot();
    void readyReadSlot();
    void sendMessageToClients(const QString &message,quint16 port,QTcpSocket *clientSocket);
    void queryHistorySlot();     // 查询历史记录按钮槽
    void sendMessageSlot();     //服务器发送消息按钮槽

};

#endif // DIALOG_H

